/*
 * $AIST_Release: 0.9.0 $
 * Copyright 2011 Information Technology Research Institute, National
 * Institute of Advanced Industrial Science and Technology
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package util

import com.sun.tools.javac.{ Main => Javac }
import sun.tools.jar.{ Main => Jar }
import scala.collection.JavaConversions._

/**
 * Wrapper of 'tools.jar'.
 */
object Tools {

  private var javacTimeMillis = 0l

  /**
   * Invokes javac command.
   */
  def javac(args: String*): Int = {
    println("javac: %s".format(args.mkString(" ")))

    val start = System.currentTimeMillis;
    val r = Javac.compile(args.toArray)
    val stop = System.currentTimeMillis;

    javacTimeMillis += (stop - start);

    return r
  }

  /**
   * Gets total time of compiling java code.
   */
  def getTotalJavacTimeMillis() = javacTimeMillis

  /**
   * Invokes jar command.
   */
  def jar(args: String*): Unit = {
    Jar.main(args.toArray)
  }
}
